My Team Attendance & Location Dashboard
I want to view the daily attendance status (Present/Absent) and check-in locations of my team members on a web dashboard, synchronized with their mobile check-ins,
So that I can easily track team availability, monitor who is in the office or on the field, and verify their check-in locations on a map.
1. Dashboard Layout & Team Count
- Given the manager navigates to the "My Team" web module,
- Then they should see a left-hand sidebar displaying "My Team" along with the total count of team members in brackets (e.g., My Team( 11 )).
2. Date Selection Filter
- Given the manager is on the My Team dashboard,
- Then they should see a date picker at the top of the sidebar.
- And it should default to the current date, allowing the user to select past dates to view historical attendance records.
3. Present/Absent Categorization
- Given the system receives check-in/check-out data from the employees' mobile apps,
- Then the sidebar must automatically categorize employees into two collapsible accordion menus:
- Present( X ): Employees who have checked in for the selected date.
- Absent( Y ): Employees who have not checked in for the selected date.
- When the manager clicks on the "Present" or "Absent" dropdowns, it should expand to show the list of respective employee names.
4. Map View Integration
- Given the dashboard loads,
- Then the main viewing area (right side) must display a geographic map (e.g., Google Maps).
- And the user should be able to toggle between "Map" and "Satellite" views, and use standard map controls (zoom in/out, fullscreen).
5. Location Pinning (Implied from Map)
- Given an employee checks in using their mobile app with location tracking enabled,
- Then their check-in location should be plotted as a pin/marker on the web dashboard's map for the manager to view.
6. Real-Time Synchronization
- Given an employee marks their check-in or check-out via the mobile application,
- Then the web dashboard should update their status in real-time (moving them from Absent to Present) without requiring a manual page refresh.